﻿#region File Description
//-----------------------------------------------------------------------------
// SpritePacker.cs
//
// Microsoft Game Technology Group
// Copyright (C) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
#endregion

#region Using Statements
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Xna.Framework.Content.Pipeline.Graphics;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework;
#endregion

#region LICENSE

/*
    This file is part of starLiGHT.Content.

    starLiGHT.Content is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    starLiGHT.Content is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public License
    along with starLiGHT.Content.  If not, see <http://www.gnu.org/licenses/>.

    
    ADDITIONAL (commercial) LICENSES for starLiGHT.Content are available on request.
*/

#endregion

#region Version Stuff
// **************[ starLiGHT.Engine SVN ]**********************
// * $Rev:: 1514                  $:  Revision of last commit *
// * $Author:: glatzemann         $:  Author of last commit   *
// * $Date:: 2010-10-12 10:12:09 #$:  Date of last commit     *
// ************************************************************
#endregion

namespace starLiGHT
{
    /// <summary>
    /// Build-time type used to hold the output data from the SpriteSheetProcessor.
    /// This is serialized into XNB format, then at runtime, the ContentManager
    /// loads the data into a SpriteSheet object.
    /// </summary>
    [ContentSerializerRuntimeType("starLiGHT.SpriteSheetPacker.SpriteSheet, starLiGHT.SpriteSheetPacker")]
    public class SpriteSheetContent
    {
        // Single texture contains many separate sprite images.
        public Texture2DContent Texture = new Texture2DContent();

        // Remember where in the texture each sprite has been placed.
        public List<Rectangle> SpriteRectangles = new List<Rectangle>();

        // Store the original sprite filenames, so we can look up sprites by name.
        public Dictionary<string, int> SpriteNames = new Dictionary<string, int>();
    }
}
